{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/Users/chenpeiwen/opt/anaconda3/lib/python3.7/importlib/_bootstrap.py:219: RuntimeWarning: numpy.ufunc size changed, may indicate binary incompatibility. Expected 192 from C header, got 216 from PyObject\n",
      "  return f(*args, **kwds)\n",
      "/Users/chenpeiwen/opt/anaconda3/lib/python3.7/importlib/_bootstrap.py:219: RuntimeWarning: numpy.ufunc size changed, may indicate binary incompatibility. Expected 192 from C header, got 216 from PyObject\n",
      "  return f(*args, **kwds)\n",
      "/Users/chenpeiwen/opt/anaconda3/lib/python3.7/importlib/_bootstrap.py:219: RuntimeWarning: numpy.ufunc size changed, may indicate binary incompatibility. Expected 192 from C header, got 216 from PyObject\n",
      "  return f(*args, **kwds)\n",
      "/Users/chenpeiwen/opt/anaconda3/lib/python3.7/importlib/_bootstrap.py:219: RuntimeWarning: numpy.ufunc size changed, may indicate binary incompatibility. Expected 192 from C header, got 216 from PyObject\n",
      "  return f(*args, **kwds)\n",
      "/Users/chenpeiwen/opt/anaconda3/lib/python3.7/importlib/_bootstrap.py:219: RuntimeWarning: numpy.ufunc size changed, may indicate binary incompatibility. Expected 192 from C header, got 216 from PyObject\n",
      "  return f(*args, **kwds)\n",
      "/Users/chenpeiwen/opt/anaconda3/lib/python3.7/importlib/_bootstrap.py:219: RuntimeWarning: numpy.ufunc size changed, may indicate binary incompatibility. Expected 192 from C header, got 216 from PyObject\n",
      "  return f(*args, **kwds)\n",
      "/Users/chenpeiwen/opt/anaconda3/lib/python3.7/importlib/_bootstrap.py:219: RuntimeWarning: numpy.ufunc size changed, may indicate binary incompatibility. Expected 192 from C header, got 216 from PyObject\n",
      "  return f(*args, **kwds)\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>0</th>\n",
       "      <th>1</th>\n",
       "      <th>2</th>\n",
       "      <th>3</th>\n",
       "      <th>4</th>\n",
       "      <th>5</th>\n",
       "      <th>6</th>\n",
       "      <th>7</th>\n",
       "      <th>8</th>\n",
       "      <th>9</th>\n",
       "      <th>10</th>\n",
       "      <th>11</th>\n",
       "      <th>12</th>\n",
       "      <th>0</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <td>0</td>\n",
       "      <td>0.00632</td>\n",
       "      <td>18.0</td>\n",
       "      <td>2.31</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.538</td>\n",
       "      <td>6.575</td>\n",
       "      <td>65.2</td>\n",
       "      <td>4.0900</td>\n",
       "      <td>1.0</td>\n",
       "      <td>296.0</td>\n",
       "      <td>15.3</td>\n",
       "      <td>396.90</td>\n",
       "      <td>4.98</td>\n",
       "      <td>24.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>1</td>\n",
       "      <td>0.02731</td>\n",
       "      <td>0.0</td>\n",
       "      <td>7.07</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.469</td>\n",
       "      <td>6.421</td>\n",
       "      <td>78.9</td>\n",
       "      <td>4.9671</td>\n",
       "      <td>2.0</td>\n",
       "      <td>242.0</td>\n",
       "      <td>17.8</td>\n",
       "      <td>396.90</td>\n",
       "      <td>9.14</td>\n",
       "      <td>21.6</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>2</td>\n",
       "      <td>0.02729</td>\n",
       "      <td>0.0</td>\n",
       "      <td>7.07</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.469</td>\n",
       "      <td>7.185</td>\n",
       "      <td>61.1</td>\n",
       "      <td>4.9671</td>\n",
       "      <td>2.0</td>\n",
       "      <td>242.0</td>\n",
       "      <td>17.8</td>\n",
       "      <td>392.83</td>\n",
       "      <td>4.03</td>\n",
       "      <td>34.7</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>3</td>\n",
       "      <td>0.03237</td>\n",
       "      <td>0.0</td>\n",
       "      <td>2.18</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.458</td>\n",
       "      <td>6.998</td>\n",
       "      <td>45.8</td>\n",
       "      <td>6.0622</td>\n",
       "      <td>3.0</td>\n",
       "      <td>222.0</td>\n",
       "      <td>18.7</td>\n",
       "      <td>394.63</td>\n",
       "      <td>2.94</td>\n",
       "      <td>33.4</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>4</td>\n",
       "      <td>0.06905</td>\n",
       "      <td>0.0</td>\n",
       "      <td>2.18</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.458</td>\n",
       "      <td>7.147</td>\n",
       "      <td>54.2</td>\n",
       "      <td>6.0622</td>\n",
       "      <td>3.0</td>\n",
       "      <td>222.0</td>\n",
       "      <td>18.7</td>\n",
       "      <td>396.90</td>\n",
       "      <td>5.33</td>\n",
       "      <td>36.2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>501</td>\n",
       "      <td>0.06263</td>\n",
       "      <td>0.0</td>\n",
       "      <td>11.93</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.573</td>\n",
       "      <td>6.593</td>\n",
       "      <td>69.1</td>\n",
       "      <td>2.4786</td>\n",
       "      <td>1.0</td>\n",
       "      <td>273.0</td>\n",
       "      <td>21.0</td>\n",
       "      <td>391.99</td>\n",
       "      <td>9.67</td>\n",
       "      <td>22.4</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>502</td>\n",
       "      <td>0.04527</td>\n",
       "      <td>0.0</td>\n",
       "      <td>11.93</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.573</td>\n",
       "      <td>6.120</td>\n",
       "      <td>76.7</td>\n",
       "      <td>2.2875</td>\n",
       "      <td>1.0</td>\n",
       "      <td>273.0</td>\n",
       "      <td>21.0</td>\n",
       "      <td>396.90</td>\n",
       "      <td>9.08</td>\n",
       "      <td>20.6</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>503</td>\n",
       "      <td>0.06076</td>\n",
       "      <td>0.0</td>\n",
       "      <td>11.93</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.573</td>\n",
       "      <td>6.976</td>\n",
       "      <td>91.0</td>\n",
       "      <td>2.1675</td>\n",
       "      <td>1.0</td>\n",
       "      <td>273.0</td>\n",
       "      <td>21.0</td>\n",
       "      <td>396.90</td>\n",
       "      <td>5.64</td>\n",
       "      <td>23.9</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>504</td>\n",
       "      <td>0.10959</td>\n",
       "      <td>0.0</td>\n",
       "      <td>11.93</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.573</td>\n",
       "      <td>6.794</td>\n",
       "      <td>89.3</td>\n",
       "      <td>2.3889</td>\n",
       "      <td>1.0</td>\n",
       "      <td>273.0</td>\n",
       "      <td>21.0</td>\n",
       "      <td>393.45</td>\n",
       "      <td>6.48</td>\n",
       "      <td>22.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>505</td>\n",
       "      <td>0.04741</td>\n",
       "      <td>0.0</td>\n",
       "      <td>11.93</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.573</td>\n",
       "      <td>6.030</td>\n",
       "      <td>80.8</td>\n",
       "      <td>2.5050</td>\n",
       "      <td>1.0</td>\n",
       "      <td>273.0</td>\n",
       "      <td>21.0</td>\n",
       "      <td>396.90</td>\n",
       "      <td>7.88</td>\n",
       "      <td>11.9</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>506 rows × 14 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "          0     1      2    3      4      5     6       7    8      9     10  \\\n",
       "0    0.00632  18.0   2.31  0.0  0.538  6.575  65.2  4.0900  1.0  296.0  15.3   \n",
       "1    0.02731   0.0   7.07  0.0  0.469  6.421  78.9  4.9671  2.0  242.0  17.8   \n",
       "2    0.02729   0.0   7.07  0.0  0.469  7.185  61.1  4.9671  2.0  242.0  17.8   \n",
       "3    0.03237   0.0   2.18  0.0  0.458  6.998  45.8  6.0622  3.0  222.0  18.7   \n",
       "4    0.06905   0.0   2.18  0.0  0.458  7.147  54.2  6.0622  3.0  222.0  18.7   \n",
       "..       ...   ...    ...  ...    ...    ...   ...     ...  ...    ...   ...   \n",
       "501  0.06263   0.0  11.93  0.0  0.573  6.593  69.1  2.4786  1.0  273.0  21.0   \n",
       "502  0.04527   0.0  11.93  0.0  0.573  6.120  76.7  2.2875  1.0  273.0  21.0   \n",
       "503  0.06076   0.0  11.93  0.0  0.573  6.976  91.0  2.1675  1.0  273.0  21.0   \n",
       "504  0.10959   0.0  11.93  0.0  0.573  6.794  89.3  2.3889  1.0  273.0  21.0   \n",
       "505  0.04741   0.0  11.93  0.0  0.573  6.030  80.8  2.5050  1.0  273.0  21.0   \n",
       "\n",
       "         11    12    0   \n",
       "0    396.90  4.98  24.0  \n",
       "1    396.90  9.14  21.6  \n",
       "2    392.83  4.03  34.7  \n",
       "3    394.63  2.94  33.4  \n",
       "4    396.90  5.33  36.2  \n",
       "..      ...   ...   ...  \n",
       "501  391.99  9.67  22.4  \n",
       "502  396.90  9.08  20.6  \n",
       "503  396.90  5.64  23.9  \n",
       "504  393.45  6.48  22.0  \n",
       "505  396.90  7.88  11.9  \n",
       "\n",
       "[506 rows x 14 columns]"
      ]
     },
     "execution_count": 4,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "from sklearn.datasets import load_boston\n",
    "from sklearn.model_selection import cross_val_score\n",
    "from sklearn.tree import DecisionTreeRegressor\n",
    "import pandas as pd\n",
    "boston = load_boston()\n",
    "boston.data\n",
    "pd.concat([pd.DataFrame(boston.data),pd.DataFrame(boston.target)],axis=1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(506, 13)"
      ]
     },
     "execution_count": 5,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "boston.data.shape"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "import numpy as np\n",
    "from sklearn.tree import DecisionTreeRegressor\n",
    "import matplotlib.pyplot as plt\n",
    "rng = np.random.RandomState(1) #随机数种子\n",
    "X = np.sort(5 * rng.rand(80,1), axis=0) #生成0~5之间随机的x的取值\n",
    "y = np.sin(X).ravel() #生成正弦曲线\n",
    "y[::5] += 3 * (0.5 - rng.rand(16)) #在正弦曲线上加噪声\n",
    "plt.figure()\n",
    "plt.scatter(X, y, s=20, edgecolor=\"black\",c=\"darkorange\", label=\"data\")\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "DecisionTreeRegressor(criterion='mse', max_depth=5, max_features=None,\n",
       "                      max_leaf_nodes=None, min_impurity_decrease=0.0,\n",
       "                      min_impurity_split=None, min_samples_leaf=1,\n",
       "                      min_samples_split=2, min_weight_fraction_leaf=0.0,\n",
       "                      presort=False, random_state=None, splitter='best')"
      ]
     },
     "execution_count": 13,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "regr_1 = DecisionTreeRegressor(max_depth=2)\n",
    "regr_2 = DecisionTreeRegressor(max_depth=5)\n",
    "regr_1.fit(X, y)\n",
    "regr_2.fit(X, y)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "X_test = np.arange(0.0, 5.0, 0.01)[:, np.newaxis]\n",
    "y_1 = regr_1.predict(X_test)\n",
    "y_2 = regr_2.predict(X_test)\n",
    "plt.figure()\n",
    "plt.scatter(X, y, s=20, edgecolor=\"black\",c=\"darkorange\", label=\"data\")\n",
    "plt.plot(X_test, y_1, color=\"cornflowerblue\",label=\"max_depth=2\", linewidth=2)\n",
    "plt.plot(X_test, y_2, color=\"yellowgreen\", label=\"max_depth=5\", linewidth=2)\n",
    "plt.xlabel(\"data\")\n",
    "plt.ylabel(\"target\")\n",
    "plt.title(\"Decision Tree Regression\")\n",
    "plt.legend()\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    " "
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.4"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
